package com.han.hotelplat.comm;


import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.google.gson.annotations.SerializedName;

public class ResponseWrapTo<T> {
	
//	private static Gson gson=JsonHelp.gson;
//	static {
//		
//		gson=new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss.SSS").create();
//				//registerTypeAdapter(Timestamp.class, new );
//	}
	
	public enum CodeType{
		noData(2),//么有数据
		success(0),
		fail(1),
		forbidden(403),//403 Forbidden - [*] 表示用户得到授权（与401错误相对），但是访问是被禁止的。
		notAuth(401);//401 Unauthorized - [*]：表示用户没有权限（令牌、用户名、密码错误）。
		
		CodeType(int code){
			this.code=code;
		}
		private int code;
//		private String msg;
		public int getCode() {
			return code;
		}
	}
	
	public ResponseWrapTo(CodeType code, String msg, T data) {
		this(code.getCode(), msg, data);
	}
	public ResponseWrapTo(int code, String msg, T data) {
		super();
		this.code = code;
		this.msg = msg == null?"":msg;
		this.data = data;
	}

	@SerializedName("code")
	public int code;
	@SerializedName("msg")
	public String msg;
	@SerializedName("data")
	public T data;

	public String toJson() {
		return JSONObject.toJSONString(this,SerializerFeature.DisableCircularReferenceDetect,
				SerializerFeature.WriteDateUseDateFormat,SerializerFeature.WriteMapNullValue,
				SerializerFeature.WriteNullStringAsEmpty);
	}
	
	
}
